package com.jichangxiu.server.platform.service;


import com.jichangxiu.common.entity.bo.PageData;
import com.jichangxiu.framework.mybatis.BaseService;
import com.jichangxiu.server.platform.entity.dto.PlatformTenantQueryDto;
import com.jichangxiu.server.platform.entity.po.PlatformTenant;
import com.jichangxiu.server.platform.entity.vo.PlatformTenantAddVo;
import com.jichangxiu.server.platform.entity.vo.PlatformTenantEditVo;
import com.jichangxiu.server.platform.entity.vo.PlatformTenantQueryVo;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * PlatformTenantService:
 *
 * @author Jcx
 * @create 2023-03-08 21:14
 */
public interface PlatformTenantService extends BaseService<PlatformTenant> {

    /**
     * 新增租户
     *
     * @param platformTenantAddVo 租户视图对象
     * @return 是否成功
     */
    public Boolean add(PlatformTenantAddVo platformTenantAddVo);

    /**
     * 多选级联删除租户
     *
     * @param tenantIdList 租户ID列表
     * @return 是否成功
     */
    public Boolean del(List<String> tenantIdList);

    /**
     * 修改租户信息
     *
     * @param platformTenantEditVo 租户视图对象
     * @return 是否成功
     */
    public Boolean edit(PlatformTenantEditVo platformTenantEditVo);

    /**
     * 根据ID获取租户详情
     *
     * @param tenantId 租户ID
     * @return 租户详情
     */
    public PlatformTenantQueryDto info(@NotBlank(message = "租户ID不能为空") String tenantId);

    /**
     * 根据租户名称获取租户详情
     *
     * @param tenantName 租户名称
     * @return 租户详情
     */
    public PlatformTenantQueryDto getTenantByTenantName(String tenantName);

    /**
     * 分页查询租户列表
     *
     * @param platformTenantQueryVo 租户视图对象
     * @return 分页租户列表
     */
    public PageData<PlatformTenantQueryDto> pageList(PlatformTenantQueryVo platformTenantQueryVo);

}
